﻿#ifndef UITABLEITEMDELEGATE_H
#define UITABLEITEMDELEGATE_H
#include <QStyledItemDelegate>

/// @brief 表格视图委托/代理
///
/// 该类的主要目的是自定义表格视图项(如 QTableView )的绘制行为,
/// 特别是当鼠标悬停在某一行时, 整行的所有单元格都会被重新绘制.
/// 这种自定义委托可以为用户界面提供更灵活的显示效果,
/// 例如实现整行高亮, 定制单元格外观等.
class UiTableItemDelegate: public QStyledItemDelegate
{
    Q_OBJECT
private:
    // 指明被代理的View,方便获取整行的item
    QAbstractItemView *m_table;

public:
    UiTableItemDelegate(QAbstractItemView *table, QObject *parent = nullptr);
    void paint(
            QPainter *painter,
            const QStyleOptionViewItem &option,
            const QModelIndex &index) const override;
};

#endif // UITABLEITEMDELEGATE_H
